package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.req.si.BlnoPaymentUpdateReqDto;
import com.cmc.cloud.cmclink.doc.entity.BlnoPaymentDO;
import com.cmc.cloud.cmclink.doc.mq.SiEdiReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnopaymentvo.BlnoPaymentCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnopaymentvo.BlnoPaymentRespVO;
import com.cmc.cloud.cmclink.doc.vo.blnopaymentvo.BlnoPaymentUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 提单指定支付方式信息 Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface BlnoPaymentConvert {

    BlnoPaymentConvert INSTANCE = Mappers.getMapper(BlnoPaymentConvert.class);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoPaymentDO convert(BlnoPaymentCreateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoPaymentDO convert(BlnoPaymentUpdateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoPaymentRespVO convert(BlnoPaymentDO bean);

    /**
     * 属性转换
     *
     * @param list
     * @return
     */
    List<BlnoPaymentRespVO> convertList(List<BlnoPaymentDO> list);

    /**
     * 属性转换
     *
     * @param blnoPaymentUpdateReqDtoList
     * @return
     */
    List<BlnoPaymentUpdateReqVO> convertBlnoPaymentUpdateReqVo(List<BlnoPaymentUpdateReqDto> blnoPaymentUpdateReqDtoList);

    /**
     * 属性转换
     *
     * @param paymentList paymentList
     * @return List<BlnoPaymentUpdateReqVO>
     */
    List<BlnoPaymentUpdateReqVO> ediConvertBlnoPaymentUpdateReqVo(List<SiEdiReqVO.Payment> paymentList);


    /**
     * 属性转换
     *
     * @param blnoPaymentUpdateReqVOList
     * @return
     */
    List<BlnoPaymentUpdateReqDto> convertBlnoPaymentUpdateReqDto(List<BlnoPaymentUpdateReqVO> blnoPaymentUpdateReqVOList);

}
